import request from '@/utils/request';

const AdminFileAPI = {
  /**
   * 文件列表
   */
  index(data) {
    return request({
      url: 'admin.file/index',
      method: 'post',
      data: data,
    });
  },

  /**
   * 更新文件名
   * @param filePath 文件完整路径
   */
  update(data) {
    return request({
      url: 'admin.file/update',
      method: 'post',
      data: data,
    });
  },

  /**
   * 删除文件
   * @param filePath 文件完整路径
   */
  delete(data) {
    return request({
      url: 'admin.file/delete',
      method: 'post',
      data: data,
    });
  },

  /**
   * 上传文件
   *
   * @param file
   */
  add(file) {
    const formData = new FormData();
    formData.append('file', file);
    return request({
      url: 'admin.file/add',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data',
      },
    });
  },

  /**
   * 下载文件
   * @param url
   * @param fileName
   */
  download(url, fileName) {
    return request({
      url: url,
      method: 'get',
      responseType: 'blob',
    }).then((res) => {
      const blob = new Blob([res.data]);
      const a = document.createElement('a');
      const url = window.URL.createObjectURL(blob);
      a.href = url;
      a.download = fileName || 'download_file';
      a.click();
      window.URL.revokeObjectURL(url);
    });
  },
};

export default AdminFileAPI;
